@@ -195,7 +195,6 @@ class Agent < ActiveRecord::Base |
||
195 | 195 |
end |
196 | 196 |
|
197 | 197 |
def log(message, options = {}) |
198 |
- puts "Agent##{id}: #{message}" unless Rails.env.test? |
|
199 | 198 |
AgentLog.log_for_agent(self, message, options) |
200 | 199 |
end |
201 | 200 |
|
@@ -15,6 +15,8 @@ class AgentLog < ActiveRecord::Base |
||
15 | 15 |
before_save :truncate_message |
16 | 16 |
|
17 | 17 |
def self.log_for_agent(agent, message, options = {}) |
18 |
+ puts "Agent##{agent.id}: #{message}" unless Rails.env.test? |
|
19 |
+ |
|
18 | 20 |
log = agent.logs.create! options.merge(:message => message) |
19 | 21 |
if agent.logs.count > log_length |
20 | 22 |
oldest_id_to_keep = agent.logs.limit(1).offset(log_length - 1).pluck("agent_logs.id") |
@@ -34,6 +36,7 @@ class AgentLog < ActiveRecord::Base |
||
34 | 36 |
|
35 | 37 |
def scrub_message |
36 | 38 |
if message_changed? |
39 |
+ self.message = message.inspect unless message.is_a?(String) |
|
37 | 40 |
self.message.scrub!{ |bytes| "<#{bytes.unpack('H*')[0]}>" } |
38 | 41 |
end |
39 | 42 |
true |
@@ -90,6 +90,11 @@ describe AgentLog do |
||
90 | 90 |
AgentLog.log_for_agent(agents(:jane_website_agent), "some message", :level => 4, :outbound_event => events(:jane_website_agent_event)) |
91 | 91 |
expect(agents(:jane_website_agent).reload.last_error_log_at.to_i).to be_within(2).of(Time.now.to_i) |
92 | 92 |
end |
93 |
+ |
|
94 |
+ it "accepts objects as well as strings" do |
|
95 |
+ log = AgentLog.log_for_agent(agents(:jane_website_agent), events(:bob_website_agent_event).payload) |
|
96 |
+ expect(log.message).to include('"title"=>"foo"') |
|
97 |
+ end |
|
93 | 98 |
end |
94 | 99 |
|
95 | 100 |
describe "#log_length" do |